package lanqiao.api;

import java.util.ArrayDeque;
import java.util.Deque;

/**
 * 双队列的api使用
 * 可以在队首加，也可以在队尾加，可以指定移除队尾的，也可指定移除队首的
 * <p>
 * add是正常顺序进入，先来先进
 * push是插到队头
 * remove 移除队头
 */

public class DequeDemo {
    public static void main(String[] args) {
        Deque<Integer> deque = new ArrayDeque<>();
        deque.add(1);
        // 放到队头
        deque.push(2);
        deque.add(3);
        System.out.println(deque);  // 2 1 3
        deque.remove();
        System.out.println(deque);  // 1 3

        // 队尾添加
        deque.offerLast(12);
        // 队头添加
        deque.offerFirst(11);
        System.out.println(deque);

        // 移除队尾
        deque.pollLast();
        // 移除队头
        deque.pollFirst();
        System.out.println(deque);

        // 取队尾
        Integer r1 = deque.peekLast();
        System.out.println(r1);
        // 取队头
        Integer r2 = deque.peekFirst();
        System.out.println(r2);
    }
}
